﻿Imports NUnit.Framework
Imports PMOutlookAddIn

Public Class BijHetBerekenenVanDatumBinnen48WerkurenStartendVanafMaandag8uur
    Dim _startDatum As DateTime
    Private _verwachteDatum As DateTime
    Private _berekendeDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _startDatum = New DateTime(2010, 1, 4, 8, 0, 0)
        _verwachteDatum = New DateTime(2010, 1, 6, 8, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        _berekendeDatum = SharedFunctions.DateWithin48Workhours(_startDatum)
        Assert.AreEqual(_verwachteDatum, _berekendeDatum)
    End Sub
End Class

Public Class BijHetBerekenenVanDatumBinnen48WerkurenStartendVanafZaterdag8uur
    Dim _startDatum As DateTime
    Private _verwachteDatum As DateTime
    Private _berekendeDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _startDatum = New DateTime(2010, 1, 2, 8, 0, 0)
        _verwachteDatum = New DateTime(2010, 1, 6, 8, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        _berekendeDatum = SharedFunctions.DateWithin48Workhours(_startDatum)
        Assert.AreEqual(_verwachteDatum, _berekendeDatum)
    End Sub
End Class

Public Class BijHetBerekenenVanDatumBinnen48WerkurenStartendVanafZaterdag16uur
    Dim _startDatum As DateTime
    Private _verwachteDatum As DateTime
    Private _berekendeDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _startDatum = New DateTime(2010, 1, 2, 16, 0, 0)
        _verwachteDatum = New DateTime(2010, 1, 6, 8, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        _berekendeDatum = SharedFunctions.DateWithin48Workhours(_startDatum)
        Assert.AreEqual(_verwachteDatum, _berekendeDatum)
    End Sub
End Class

Public Class BijHetBerekenenVanDatumBinnen48WerkurenStartendVanafZondag8uur
    Dim _startDatum As DateTime
    Private _verwachteDatum As DateTime
    Private _berekendeDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _startDatum = New DateTime(2010, 1, 3, 8, 0, 0)
        _verwachteDatum = New DateTime(2010, 1, 6, 8, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        _berekendeDatum = SharedFunctions.DateWithin48Workhours(_startDatum)
        Assert.AreEqual(_verwachteDatum, _berekendeDatum)
    End Sub
End Class

Public Class BijHetBerekenenVanDatumBinnen48WerkurenStartendVanafVrijdag18uur
    Dim _startDatum As DateTime
    Private _verwachteDatum As DateTime
    Private _berekendeDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _startDatum = New DateTime(2010, 1, 1, 18, 0, 0)
        _verwachteDatum = New DateTime(2010, 1, 5, 18, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        _berekendeDatum = SharedFunctions.DateWithin48Workhours(_startDatum)
        Assert.AreEqual(_verwachteDatum, _berekendeDatum)
    End Sub
End Class

Public Class BijHetBerekenenVanDatumBinnen48WerkurenStartendVanafDonderdag18uur
    Dim _startDatum As DateTime
    Private _verwachteDatum As DateTime
    Private _berekendeDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _startDatum = New DateTime(2009, 12, 31, 18, 0, 0)
        _verwachteDatum = New DateTime(2010, 1, 4, 18, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        _berekendeDatum = SharedFunctions.DateWithin48Workhours(_startDatum)
        Assert.AreEqual(_verwachteDatum, _berekendeDatum)
    End Sub
End Class

Public Class BijHetControlerenOfMaandagEenWerkdagIs
    Dim _controleDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _controleDatum = New DateTime(2010, 1, 4, 8, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.IsTrue(SharedFunctions.IsWorkDay(_controleDatum))
    End Sub
End Class

Public Class BijHetControlerenOfZondagEenWerkdagIs
    Dim _controleDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _controleDatum = New DateTime(2010, 1, 3, 8, 0, 0)
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.IsFalse(SharedFunctions.IsWorkDay(_controleDatum))
    End Sub
End Class

Public Class BijHetOmzettenNaar8uurVanDatumOm1Uur
    Dim _controleDatum As DateTime
    Dim _verwachteDatum As DateTime

    <SetUp()> _
    Public Sub Setup()
        _controleDatum = New DateTime(2010, 1, 3, 1, 0, 0)
        _verwachteDatum = New DateTime(2010, 1, 3, 8, 0, 0)
    End Sub


    <Test()> _
    Public Sub DanMoetenDeMinutenCorrectZijn()
        Assert.AreEqual(_verwachteDatum.Minute, SharedFunctions.set8oclock(_controleDatum).Minute)
    End Sub

    <Test()> _
    Public Sub DanMoetHetUurCorrectZijn()
        Assert.AreEqual(_verwachteDatum.Hour, SharedFunctions.set8oclock(_controleDatum).Hour)
    End Sub

    <Test()> _
Public Sub DanMoetHetUur8Zijn()
        Assert.AreEqual(8, SharedFunctions.set8oclock(_controleDatum).Hour)
    End Sub

    <Test()> _
    Public Sub DanMoetDeDagCorrectZijn()
        Assert.AreEqual(_verwachteDatum.Day, SharedFunctions.set8oclock(_controleDatum).Day)
    End Sub

    <Test()> _
  Public Sub DanMoetDeMaandCorrectZijn()
        Assert.AreEqual(_verwachteDatum.Month, SharedFunctions.set8oclock(_controleDatum).Month)
    End Sub

    <Test()> _
  Public Sub DanMoetJaarCorrectZijn()
        Assert.AreEqual(_verwachteDatum.Year, SharedFunctions.set8oclock(_controleDatum).Year)
    End Sub
End Class

Public Class BijHetOpzoekenVanHalfDPNummerInTekst
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "[DP01-0000719597-03]"
    End Sub

    <Test()> _
    Public Sub DanMoetHetDPNummerCorrectZijn()
        Assert.AreEqual("719597", SharedFunctions.GetDPNumberOutOfString(_tekst))
    End Sub

End Class

Public Class BijHetOpzoekenVanDPNummerInEenLegeTekst
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = String.Empty
    End Sub

    <Test()> _
    Public Sub DanMoetHetDPNummerCorrectZijn()
        Assert.AreEqual(String.Empty, SharedFunctions.GetDPNumberOutOfString(_tekst))
    End Sub

End Class

Public Class BijHetOpzoekenVanVolledigDPNummerInEenTekst
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "[DP01-9999719597-03]"
    End Sub

    <Test()> _
    Public Sub DanMoetHetDPNummerCorrectZijn()
        Assert.AreEqual("9999719597", SharedFunctions.GetDPNumberOutOfString(_tekst))
    End Sub

End Class

Public Class BijHetOpzoekenVanDPNummerInEenTeKorteTekst
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "[DP01-"
    End Sub

    <Test()> _
    Public Sub DanMoetHetDPNummerCorrectZijn()
        Assert.AreEqual(String.Empty, SharedFunctions.GetDPNumberOutOfString(_tekst))
    End Sub

End Class

Public Class BijHetOpzoekenVanVolledigDPNummerInEenLangeTekst
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "dit is het begin van de tekst[DP01-9999719597-03] dit is het einde van de tekst"
    End Sub

    <Test()> _
    Public Sub DanMoetHetDPNummerCorrectZijn()
        Assert.AreEqual("9999719597", SharedFunctions.GetDPNumberOutOfString(_tekst))
    End Sub

End Class

Public Class BijHetVerwijderenVanVoorloopnullenInLegeTekst
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = String.Empty
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.AreEqual(String.Empty, SharedFunctions.RemoveLeadingZeros(_tekst))
    End Sub

End Class

Public Class BijHetVerwijderenVanVoorloopnullenInNothing

    <SetUp()> _
    Public Sub Setup()
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.AreEqual(String.Empty, SharedFunctions.RemoveLeadingZeros(Nothing))
    End Sub

End Class

Public Class BijHetVerwijderenVanVoorloopnullenInTekstZonderNullen
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "dit is een tekst zonder nullen"
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.AreEqual("dit is een tekst zonder nullen", SharedFunctions.RemoveLeadingZeros(_tekst))
    End Sub
End Class

Public Class BijHetVerwijderenVanVoorloopnullenInTekstMetNullenAchteraan
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "dit is een tekst met nullen 00000"
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.AreEqual("dit is een tekst met nullen 00000", SharedFunctions.RemoveLeadingZeros(_tekst))
    End Sub
End Class

Public Class BijHetVerwijderenVanVoorloopnullenInTekstMetEnkelNullen
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "00000"
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.AreEqual(String.Empty, SharedFunctions.RemoveLeadingZeros(_tekst))
    End Sub
End Class

Public Class BijHetVerwijderenVanVoorloopnullenInTekstMetNullenMiddenin
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "dit is een tekst met nullen 00000 ergens in het midden"
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.AreEqual("dit is een tekst met nullen 00000 ergens in het midden", SharedFunctions.RemoveLeadingZeros(_tekst))
    End Sub
End Class

Public Class BijHetVerwijderenVanVoorloopnullenInTekstMetNullenVooraan
    Private _tekst As String

    <SetUp()> _
    Public Sub Setup()
        _tekst = "000 dit is een tekst met nullen 00000 ergens in het midden EN vooraan"
    End Sub

    <Test()> _
    Public Sub DanMoetHetResultaatCorrectZijn()
        Assert.AreEqual(" dit is een tekst met nullen 00000 ergens in het midden EN vooraan", SharedFunctions.RemoveLeadingZeros(_tekst))
    End Sub
End Class
